home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 095 - AppleWorks Mailing Program - Automated Form Letters.dsk / STARTUP.bas < prev    next >
BASIC Source File  |  2019-02-17  |  22KB  |  253 lines

  1. 50  REM  THIS VERSION HAS BEEN CRUNCHED SO THAT ALL REM STATEMENTS HAVE BEEN REMOVED AND LINES CONSOLIDATED. SEE THE FILE, 'UNCRUNCHED' FOR THE ORIGINAL VERSION.
  2. 100  HIMEM: 37120:ST$ = "": LET D$ =  CHR$(4): PRINT D$;"BLOAD KEYIN,A$95D0": LET MACHID =  PEEK(49048): IF MACHID = 186  THEN ID = 1: REM 
  3. 110  IF MACHID <128  THEN 2510: REM 
  4. 120  LET MACHID = MACHID -128: IF MACHID -128 > = 64  THEN 2510: REM 
  5. 130  LET MACHID = MACHID -32: IF MACHID >16  THEN MEM = 1: REM 
  6. 140  IF MACHID <2  THEN 2510: REM 
  7. 150  IF ID < >1  AND MEM < >1  THEN LIMIT = 150: LET LSTRING = 8000: GOTO 400: REM 
  8. 160 LIMIT = 245: LET LSTRING = 7000: GOTO 400: REM 
  9. 170  INVERSE : PRINT " ";: NORMAL : PRINT  CHR$(8);
  10. 180  ONERR  GOTO 2530: REM 
  11. 190  IF  PEEK(49152) <128  THEN 190
  12. 200  POKE 216,0: RETURN 
  13. 210  FOR I = 1 TO CT: VTAB 12: HTAB 27: PRINT "Analyzing Line ";I;" of ";CT;" lines.": LET LA = 1: IF  LEN(ST$(I)) <8  THEN 300
  14. 220  FOR B =  LEN(ST$(I)) TO 1  STEP  -1: IF  MID$ (ST$(I),B,6) < >"[MERGE"  THEN  GOTO 290
  15. 230  LET LC =  VAL( MID$ (ST$(I),B +6,2)): LET PL = 7: IF LC = 0  THEN 270
  16. 240  IF LC >9  THEN PL = PL +1
  17. 250  IF LC >30  THEN 270
  18. 260  IF  MID$ (ST$(I),B +PL,1) = "*"  OR  MID$ (ST$(I),B +PL,1) = "]"  THEN 280
  19. 270  PRINT D$;"CLOSE": GOTO 2490
  20. 280  LET D(I,LA) = B: LET LA = LA +1: IF LA >7  THEN  PRINT D$;"CLOSE": GOTO 2480
  21. 290  NEXT B
  22. 300  LET D(I,LA) = 0: NEXT I: RETURN 
  23. 310  LET LC =  VAL( MID$ (ST$(I),B +6,2)):PL = 9: IF LC >9  THEN PL = PL +1
  24. 320  IF  MID$ (ST$(I),B +(PL -2),1) < >"*"  THEN 360
  25. 330  LET PL = PL +1: IF L$(LC) < >""  THEN 360
  26. 340  LET ST$(I) =  CHR$(147): REM 
  27. 350  RETURN 
  28. 360  IF B = 1  THEN  LET ST$(I) = L$(LC) + MID$ (ST$(I),PL): GOTO 390
  29. 370  IF  MID$ (ST$(I),B +(PL -1),1) = ""  THEN  LET ST$(I) =  LEFT$(ST$(I),B -1) +L$(LC): RETURN 
  30. 380  LET ST$(I) =  LEFT$(ST$(I),B -1) +L$(LC) + RIGHT$(ST$(I), LEN(ST$(I)) -B +1 -(PL -1))
  31. 390  LET B = B + LEN(L$(LC)) -2: RETURN 
  32. 400  PRINT D$;"PR#3": PRINT " ": IF ID = 1  OR MEM = 1  THEN  DIM ST$(LIMIT),L$(30),D(LIMIT,7): GOTO 420
  33. 410  DIM ST$(LIMIT),L$(30),TM$(LIMIT),D(LIMIT,7)
  34. 420 SP = 1:PT = 2:SLOT = 1:DISK$ = "Data Disk: Disk 2": ONERR  GOTO 440
  35. 430  PRINT D$;"OPEN CONFIG": PRINT D$;"READ CONFIG": INPUT SLOT: INPUT LF: INPUT SP:PC = 1
  36. 440  IF  PEEK(222) = 5  OR  PEEK(222) = 0  THEN  GOTO 460
  37. 450  PRINT D$;"CLOSE": GOTO 2430
  38. 460  PRINT D$;"CLOSE CONFIG": PRINT D$;"PREFIX": INPUT PR$: POKE 216,0: TEXT : HOME : LET TITLE$ = "AppleWorks Mailing Program": IF ID = 1  THEN DISK$ = "Data Disk: External"
  39. 470  VTAB 1: HTAB 2: PRINT "Version 1.1": VTAB 1: POKE 36,64: PRINT "October 23, 1984": VTAB 1: HTAB 26: PRINT TITLE$: VTAB 2: HTAB 2: FOR I = 1 TO 79: PRINT "_";: NEXT I: VTAB 23: HTAB 2: FOR I = 1 TO 79: PRINT "_";: NEXT I
  40. 480  POKE 34,3: POKE 35,22: POKE 33,60: POKE 32,12: HOME : PRINT : PRINT "This program allows you to automatically merge data": PRINT "created using the AppleWorks Data Base into a master": PRINT "document created using the AppleWorks Word Processor."
  41. 490  PRINT : PRINT "For example, you can merge a name and address file": PRINT "into a form letter to produce customized letters with": PRINT "just a few keystrokes.": PRINT : PRINT "The instructions are contained in four AppleWorks Word"
  42. 500  PRINT "Processor files on this disk. If you have not done so": PRINT "already, start up AppleWorks now and read the instructions.": PRINT "Since they are several pages long, you may want to print": PRINT "them out for reference.": PRINT 
  43. 510  POKE 33,80: POKE 32,0: VTAB 22: POKE 36,45: PRINT "Copyright Apple Computer, Inc 1984";: HTAB 2: VTAB 24: PRINT "Press any key to continue ";: GOSUB 170: POKE 49168,0
  44. 520  HOME : GOSUB 530: GOTO 540
  45. 530  VTAB 1: HTAB 2: PRINT DISK$;: VTAB 1: HTAB 26: PRINT TITLE$: VTAB 2: HTAB 2: FOR ZZ = 1 TO 79: PRINT "_";: NEXT ZZ: VTAB 23: HTAB 2: FOR ZZ = 1 TO 79: PRINT "_";: NEXT ZZ: RETURN 
  46. 540  POKE 34,23: HOME : POKE 34,3: POKE 35,22: VTAB 1: POKE 36,52: FOR I = 1 TO 28: PRINT " ";: NEXT I: VTAB 1: POKE 36,68: PRINT "Escape: Quit": GOSUB 550: GOSUB 560: GOSUB 570: GOSUB 590: GOSUB 600: GOSUB 620: GOSUB 630: INVERSE : ON PT GOSUB 570,600,630: NORMAL : GOTO 640
  47. 550  VTAB 10: HTAB 28: PRINT "Location of Data Disk:": RETURN 
  48. 560  VTAB 12: HTAB 28: PRINT "1. ";: RETURN 
  49. 570  IF ID = 1  THEN  VTAB 12: HTAB 31: PRINT "Internal Drive": RETURN 
  50. 580  VTAB 12: HTAB 31: PRINT "Drive 1": RETURN 
  51. 590  VTAB 14: HTAB 28:: PRINT "2. ";: RETURN 
  52. 600  IF ID = 1  THEN  VTAB 14: HTAB 31: PRINT "External Drive": RETURN 
  53. 610  VTAB 14: HTAB 31: PRINT "Drive 2": RETURN 
  54. 620  VTAB 16: HTAB 28: PRINT "3. ";: RETURN 
  55. 630  VTAB 16: HTAB 31: PRINT "Pathname": RETURN 
  56. 640  HTAB 2: VTAB 24: PRINT "Type number, or use arrows, then press Return (Press 'P' for Printer Setup) ";PT;: GOSUB 170: GOTO 650
  57. 650  IF  PEEK(49152) = 155  THEN 2550
  58. 660  GET IN$: IF IN$ = "P"  OR IN$ = "p"  THEN  GOSUB 1870: GOTO 520
  59. 670  IF  ASC(IN$) >48  AND  ASC(IN$) <52  THEN  ON PT GOSUB 570,600,630: LET PT =  VAL(IN$): GOTO 710
  60. 680  IF IN$ =  CHR$(13)  THEN 720
  61. 690  IF IN$ =  CHR$(10)  THEN  ON PT GOSUB 570,600,630: LET PT = PT +1: IF PT = 4  THEN PT = 1
  62. 700  IF IN$ =  CHR$(11)  THEN  ON PT GOSUB 570,600,630: LET PT = PT -1: IF PT = 0  THEN PT = 3
  63. 710  INVERSE : ON PT GOSUB 570,600,630: NORMAL : GOTO 640
  64. 720  IF PT = 3  THEN 820
  65. 730  VTAB 1: POKE 36,63: PRINT "Escape: Main Menu": IF PT = 3  THEN 820
  66. 740  IF ID = 0  THEN DS$ = "Disk " + STR$(PT) +"  ": GOTO 770
  67. 750  IF PT = 1  THEN DS$ = "Internal"
  68. 760  IF PT = 2  THEN DS$ = "External"
  69. 770  LET DISK$ = "Data Disk: " +DS$: HTAB 10: VTAB 20: PRINT "Place your Data Disk in ";: IF ID = 1  THEN  PRINT "the ";DS$;" Drive";
  70. 780  IF ID = 0  THEN  PRINT "Drive ";PT;
  71. 790  PRINT " and shut the door.": POKE 34,23: HOME : POKE 34,3: HTAB 2: VTAB 24: PRINT "Press any key to continue ";: GOSUB 180: IF  PEEK(49152) = 155  THEN  POKE 49168,0: GOTO 520
  72. 800  POKE 49168,0: ONERR  GOTO 2300
  73. 810  VTAB 1: HTAB 2: PRINT DISK$;: FOR I = 1 TO 5: PRINT " ";: NEXT I: PRINT TITLE$;: PRINT D$;"PREFIX ,S6,D";PT: PRINT D$;"PREFIX": INPUT PH$: POKE 216,0: GOTO 1000
  74. 820  VTAB 16: HTAB 40: FOR I = 1 TO 40: PRINT ".";: NEXT I: POKE 34,23: HOME : POKE 34,3: VTAB 24: HTAB 2: PRINT "Enter the pathname of your data disk";: VTAB 1: POKE 36,63: PRINT "Escape: Main Menu": VTAB 16: HTAB 40: IF PH$ < >""  THEN  PRINT PH$;
  75. 830  GOSUB 170
  76. 840  IF  PEEK(49152) = 155  THEN  POKE 49168,0: GOTO 520
  77. 850  GET TM$: IF  ASC(TM$) <27  AND TM$ < > CHR$(8)  AND TM$ < > CHR$(13)  THEN  GOSUB 180: GOTO 840
  78. 860  IF TM$ =  CHR$(127)  OR TM$ =  CHR$(8)  THEN 880
  79. 870  GOTO 910
  80. 880  IF  LEN(PH$) = 0  THEN  GOSUB 180: GOTO 840
  81. 890  IF  LEN(PH$) = 1  THEN  LET PH$ = "": PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 830
  82. 900  LET PH$ =  LEFT$(PH$, LEN(PH$) -1): PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 830
  83. 910  IF TM$ < > CHR$(13)  THEN  LET PH$ = PH$ +TM$
  84. 920  IF  LEN(PH$) >39  THEN  LET PH$ =  LEFT$(PH$, LEN(PH$) -1):: GOTO 830
  85. 930  IF TM$ =  CHR$(13)  THEN 950
  86. 940  PRINT TM$;: GOTO 830
  87. 950  IF PH$ = ""  THEN 830
  88. 960  IF  LEFT$(PH$,1) < >"/"  THEN  LET PH$ = "/" +PH$
  89. 970  IF  RIGHT$(PH$,1) < >"/"  THEN  LET PH$ = PH$ +"/"
  90. 980  ONERR  GOTO 2320
  91. 990  LET DISK$ = "Pathname: " + LEFT$(PH$,12): VTAB 1: HTAB 2: PRINT DISK$;: FOR I = 1 TO 24 - LEN(DISK$): PRINT " ";: NEXT I: PRINT TITLE$;: PRINT D$;"PREFIX ";PH$: POKE 216,0: GOTO 1000
  92. 1000  POKE 34,23: HOME : POKE 34,3: HOME : LET TM$ = "": LET R$ = "": LET LT = 0: VTAB 10: HTAB 10: PRINT "Name of Word Processor File: ";: IF WP$ < >""  THEN  PRINT WP$
  93. 1010  PRINT : VTAB 1: POKE 36,63: PRINT "Escape: Main Menu": VTAB 24: HTAB 2: PRINT "Enter name of Word Processor File: ";: IF WP$ < >""  THEN  PRINT WP$;
  94. 1020  GOSUB 170
  95. 1030  IF  PEEK(49152) = 155  THEN  POKE 49168,0: GOTO 520
  96. 1040  GET TM$: IF  ASC(TM$) <27  AND TM$ < > CHR$(8)  AND TM$ < > CHR$(13)  THEN  GOSUB 180: GOTO 1030
  97. 1050  IF TM$ =  CHR$(127)  OR TM$ =  CHR$(8)  THEN 1070
  98. 1060  GOTO 1100
  99. 1070  IF  LEN(WP$) = 0  THEN  GOSUB 180: GOTO 1030
  100. 1080  IF  LEN(WP$) = 1  THEN  LET WP$ = "": PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 1020
  101. 1090  LET WP$ =  LEFT$(WP$, LEN(WP$) -1): PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 1020
  102. 1100  IF TM$ < > CHR$(13)  THEN  LET WP$ = WP$ +TM$
  103. 1110  IF  LEN(WP$) >40  THEN  LET WP$ =  LEFT$(WP$, LEN(WP$) -1):: GOTO 1020
  104. 1120  IF TM$ =  CHR$(13)  THEN 1140
  105. 1130  PRINT TM$;: GOTO 1020
  106. 1140  IF WP$ = ""  THEN 1020
  107. 1150  VTAB 10: HTAB 39: PRINT WP$;: FOR I = 1 TO 40 - LEN(WP$): PRINT " ";: NEXT I: PRINT 
  108. 1160  POKE 34,23: HOME : POKE 34,11: HOME : VTAB 12: HTAB 10: PRINT "Name of Data Base File: ";: IF DB$ < >""  THEN  PRINT DB$
  109. 1170  PRINT : VTAB 1: POKE 36,53: PRINT "Escape: Word Processor File": VTAB 24: HTAB 2: PRINT "Enter name of Data Base File: ";: IF DB$ < >""  THEN  PRINT DB$;
  110. 1180  GOSUB 170
  111. 1190  IF  PEEK(49152) = 155  THEN  POKE 49168,0: VTAB 1: POKE 36,53: PRINT "                           ": GOTO 1000
  112. 1200  GET TM$: IF  ASC(TM$) <27  AND TM$ < > CHR$(8)  AND TM$ < > CHR$(13)  THEN  GOSUB 180: GOTO 1190
  113. 1210  IF TM$ =  CHR$(127)  OR TM$ =  CHR$(8)  THEN 1230
  114. 1220  GOTO 1260
  115. 1230  IF  LEN(DB$) = 0  THEN  GOSUB 180: GOTO 1190
  116. 1240  IF  LEN(DB$) = 1  THEN  LET DB$ = "": PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 1180
  117. 1250  LET DB$ =  LEFT$(DB$, LEN(DB$) -1): PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 1180
  118. 1260  IF TM$ < > CHR$(13)  THEN  LET DB$ = DB$ +TM$
  119. 1270  IF  LEN(DB$) >40  THEN  LET DB$ =  LEFT$(DB$, LEN(DB$) -1):: GOTO 1180
  120. 1280  IF TM$ =  CHR$(13)  THEN 1300
  121. 1290  PRINT TM$;: GOTO 1180
  122. 1300  IF DB$ = ""  THEN 1180
  123. 1310  VTAB 12: HTAB 34: PRINT DB$;: FOR I = 1 TO 40 - LEN(DB$): PRINT " ";: NEXT I: PRINT 
  124. 1320  POKE 34,23: HOME : POKE 34,3: VTAB 14: HTAB 10: PRINT "Number of categories in each label: ": VTAB 1: POKE 36,53: PRINT "                           ": VTAB 1: POKE 36,58: PRINT "Escape: Data Base File": VTAB 24: HTAB 2: PRINT "Enter the number of categories in each label: ";
  125. 1330  GOSUB 170
  126. 1340  IF  PEEK(49152) = 155  THEN  POKE 49168,0: GOTO 1160
  127. 1350  GET TM$: IF  ASC(TM$) >47  AND  ASC(TM$) <58  OR TM$ =  CHR$(8)  OR TM$ =  CHR$(13)  THEN 1370
  128. 1360  GOSUB 180: GOTO 1340
  129. 1370  IF TM$ =  CHR$(13)  AND R$ < >""  THEN 1440
  130. 1380  IF TM$ =  CHR$(13)  THEN 1330
  131. 1390  IF TM$ =  CHR$(8)  AND  LEN(R$) = 0  THEN  GOSUB 180: GOTO 1340
  132. 1400  IF TM$ =  CHR$(8)  AND  LEN(R$) = 1  THEN  LET R$ = "": PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 1330
  133. 1410  IF TM$ =  CHR$(8)  THEN  LET R$ =  LEFT$(R$, LEN(R$) -1): PRINT  CHR$(8);"  "; CHR$(8); CHR$(8);: GOTO 1330
  134. 1420  LET R$ = R$ +TM$: IF  LEN(R$) >2  THEN  LET R$ =  LEFT$(R$, LEN(R$) -1):: GOTO 1330
  135. 1430  PRINT TM$;: GOTO 1330
  136. 1440  LET R =  VAL(R$): IF R = 0  THEN R$ = "": GOTO 1320
  137. 1450  VTAB 14: POKE 36,46: PRINT R;" ": IF R >30  THEN 2460
  138. 1460  POKE 34,23: HOME : POKE 34,16: POKE 35,22: HOME : VTAB 1: POKE 36,53: PRINT "                           ": ONERR  GOTO 1550
  139. 1470  PRINT D$;"OPEN ";PH$;WP$;",TTXT": ONERR  GOTO 1810
  140. 1480  PRINT D$;"OPEN ";PH$;DB$;", TTXT": VTAB 16: HTAB 10: PRINT "Reading Word Processor File";: LET LGTH = 0:ER = 0: ONERR  GOTO 1550
  141. 1490  IF ST$ < >""  THEN  FOR I = 1 TO CT: LET ST$(I) = "": NEXT I
  142. 1500  LET I = 1: PRINT D$;"READ ";PH$;WP$
  143. 1510  CALL 38352:ST$ =  MID$ (ST$,1):ST$(I) = ST$: PRINT ".";: LET I = I +1: IF I = LIMIT  THEN  PRINT D$;"CLOSE": GOTO 2440
  144. 1520  LET LGTH = LGTH + LEN(ST$): IF LGTH >LSTRING  THEN  PRINT D$;"CLOSE": GOTO 2470
  145. 1530  IF  LEN(ST$) >237  THEN ER = 1: REM 
  146. 1540  GOTO 1510
  147. 1550  POKE 216,0: IF  PEEK(222) = 16  THEN 2350
  148. 1560  IF  PEEK(222) = 13  THEN  GOTO 2410
  149. 1570  IF  PEEK(222) = 6  THEN  GOTO 2360
  150. 1580  IF  PEEK(222) = 77  THEN  FOR M = 1 TO I: LET ST$(M) = "": NEXT M: PRINT D$;"CLOSE": GOTO 2470
  151. 1590  IF  PEEK(222) < >5  THEN 2430
  152. 1600 CT = I -1: PRINT D$;"CLOSE ";PH$;WP$: IF ER = 1  THEN  GOSUB 2500
  153. 1610  IF ID = 1  OR MEM = 1  THEN  PRINT D$;"CLOSE ";PH$;DB$: PRINT D$;"OPEN /RAM/TEMP": PRINT D$;"WRITE /RAM/TEMP": FOR I = 1 TO CT: PRINT ST$(I): NEXT I: PRINT D$;"CLOSE /RAM/TEMP": PRINT D$;"OPEN ";PH$;DB$: GOTO 1630
  154. 1620  FOR I = 1 TO CT: LET TM$(I) = ST$(I): NEXT I
  155. 1630  REM 
  156. 1640  POKE 34,3: POKE 35,22: HOME : GOSUB 210: HOME : ONERR  GOTO 1810
  157. 1650  VTAB 12: HTAB 5: PRINT "Make sure your printer is ready to print, then press any key to continue. ";: GET ZZ$: HOME 
  158. 1660  LET LT = LT +1: VTAB 5: HTAB 32: PRINT "Creating Letter ";LT: VTAB 1: POKE 36,58: PRINT "Escape: Stop Printing";: PRINT D$;"READ ";PH$;DB$: FOR M = 1 TO R: CALL 38352:ST$ =  MID$ (ST$,1):L$(M) = ST$: NEXT M: FOR I = 1 TO CT: LET LA = 1: VTAB 12: HTAB 27: PRINT "Merging Line ";I;" of ";CT;" lines.": IF  PEEK(49152) <128  THEN 1680
  159. 1670  IF  PEEK(49152) = 155  THEN  POKE 49168,0: PRINT D$;"CLOSE ";PH$;DB$: POKE 216,0: GOTO 520
  160. 1680  IF D(I,LA) = 0  THEN 1700
  161. 1690  LET B = D(I,LA): GOSUB 310: LET LA = LA +1: GOTO 1680
  162. 1700  NEXT I: POKE 49168,0: VTAB 15: HTAB 31: PRINT "Printing Letter ";LT: PRINT D$;"PR#";SLOT
  163. 1705  PRINT  CHR$(9);"80N";
  164. 1708  IF ID = 1  THEN  PRINT  CHR$(9);"Z";
  165. 1710  FOR I = 1 TO CT: IF ST$(I) =  CHR$(147)  THEN  GOTO 1790
  166. 1720  IF  LEFT$(ST$(I),1) =  CHR$(12)  AND SP = 1  THEN  PRINT  CHR$(12);: GOTO 1760
  167. 1730  IF I = CT  THEN  PRINT ST$(I);: GOTO 1790
  168. 1740  PRINT ST$(I): IF LF = 1  THEN  PRINT  CHR$(10)
  169. 1750  GOTO 1790
  170. 1760  PRINT D$;"PR#3": GOSUB 530: VTAB 1: POKE 36,58: PRINT "Escape: Stop Printing": VTAB 12: HTAB 8: PRINT "Remove sheet of paper from printer and replace with another one.": VTAB 24: PRINT "Press any key to continue. ";: GOSUB 170: POKE 34,23: HOME : POKE 34,3: ONERR  GOTO 1810
  171. 1770  IF  PEEK(49152) = 155  THEN  POKE 49168,0: PRINT D$;"CLOSE ";PH$;DB$: POKE 216,0: GOTO 520
  172. 1780  POKE 49168,0: PRINT D$;"PR#";SLOT: PRINT  CHR$(9);"80N";: IF  LEN(ST$(I)) >1  THEN  LET ST$(I) =  MID$ (ST$(I),2): GOTO 1730
  173. 1790  NEXT I: PRINT D$;"PR#3": PRINT : GOSUB 530: IF ID = 1  OR MEM = 1  THEN  PRINT D$;"OPEN /RAM/TEMP": PRINT D$;"READ /RAM/TEMP": FOR I = 1 TO CT: CALL 38352:ST$ =  MID$ (ST$,1):ST$(I) = ST$: NEXT I: PRINT D$;"CLOSE /RAM/TEMP": GOTO 1660
  174. 1800  FOR I = 1 TO CT: LET ST$(I) = TM$(I): NEXT I: GOTO 1660
  175. 1810  POKE 216,0: IF  PEEK(222) = 16  THEN  PRINT D$;"CLOSE": GOTO 2370
  176. 1820  IF  PEEK(222) = 6  THEN  PRINT D$;"CLOSE": GOTO 2380
  177. 1830  IF  PEEK(222) = 13  THEN  PRINT D$;"CLOSE": GOTO 2420
  178. 1840  IF  PEEK(222) < >5  THEN  GOTO 2430
  179. 1850  POKE 216,0: PRINT D$;"CLOSE ";PH$;DB$: IF M = 1  THEN 520
  180. 1860  GOTO 2390
  181. 1870  HOME : VTAB 1: HTAB 2: PRINT "Printer Setup           ";:PS = 1: VTAB 10: HTAB 15: PRINT "Configuration of Printer:": VTAB 12: HTAB 17: PRINT "1. ": VTAB 14: HTAB 17: PRINT "2. ": VTAB 16: HTAB 17: PRINT "3. ": GOTO 1920
  182. 1880  IF ID = 1  THEN  VTAB 12: HTAB 20: PRINT "Printer is in Port": RETURN 
  183. 1890  VTAB 12: HTAB 20: PRINT "Printer Interface Card is in Slot": RETURN 
  184. 1900  VTAB 14: HTAB 20: PRINT "Printer needs line feed after each Return": RETURN 
  185. 1910  VTAB 16: HTAB 20: PRINT "Stop Printer at end of each page": RETURN 
  186. 1920  INVERSE : GOSUB 1880: NORMAL : GOSUB 1900: GOSUB 1910: VTAB 12: POKE 36,65: PRINT SLOT: VTAB 14: POKE 36,65: IF LF = 0  THEN  PRINT "No": GOTO 1940
  187. 1930  PRINT "Yes"
  188. 1940  VTAB 16: POKE 36,65: IF SP = 0  THEN  PRINT "No ": GOTO 1960
  189. 1950  PRINT "Yes"
  190. 1960  VTAB 1: POKE 36,54: PRINT "Escape: Save Configuration": POKE 34,23: HOME : POKE 34,3: VTAB 24: PRINT "Type number, or use arrows, then press Return ";
  191. 1970  VTAB 24: POKE 36,47: PRINT PS;: GOSUB 170: IF  PEEK(49152) = 155  THEN  POKE 49168,0: GOTO 2290
  192. 1980  GET IN$: IF  ASC(IN$) >48  AND  ASC(IN$) <52  THEN  ON PS GOSUB 1880,1900,1910: LET PS =  VAL(IN$): GOTO 2020
  193. 1990  IF IN$ =  CHR$(13)  THEN 2030
  194. 2000  IF IN$ =  CHR$(10)  THEN  ON PS GOSUB 1880,1900,1910:PS = PS +1: IF PS = 4  THEN PS = 1:
  195. 2010  IF IN$ =  CHR$(11)  THEN  ON PS GOSUB 1880,1900,1910:PS = PS -1: IF PS = 0  THEN PS = 3
  196. 2020  INVERSE : ON PS GOSUB 1880,1900,1910: NORMAL : GOTO 1970
  197. 2030  POKE 34,23: HOME : POKE 34,3: VTAB 1: POKE 36,54: PRINT "     Escape: Printer Setup": VTAB 24: ON PS GOTO 2040,2100,2100
  198. 2040  IF ID = 1  THEN  PRINT "Enter the port number your printer is connected to: ";: GOTO 2060
  199. 2050  PRINT "Enter the slot number your printer is connected to: ";
  200. 2060  GOSUB 170: IF  PEEK(49152) = 155  THEN  POKE 49168,0: GOTO 1960
  201. 2070  GET TM$: IF ID = 1  AND  ASC(TM$) >48  AND  ASC(TM$) <51  AND TM$ < >"3"  THEN  PRINT TM$;: LET SLOT =  VAL(TM$): VTAB 12: POKE 36,65: PRINT SLOT: GOTO 1960
  202. 2080  IF  ASC(TM$) >48  AND  ASC(TM$) <56  AND TM$ < >"3"  THEN  PRINT TM$;: LET SLOT =  VAL(TM$): VTAB 12: POKE 36,65: PRINT SLOT: GOTO 1960
  203. 2090  GOTO 2060
  204. 2100  PRINT "Change the value?  ";
  205. 2110  INVERSE : GOSUB 2120: NORMAL : GOSUB 2130: GOTO 2140
  206. 2120  VTAB 24: HTAB 21: PRINT "No";: RETURN 
  207. 2130  VTAB 24: HTAB 25: PRINT "Yes";: RETURN 
  208. 2140  LET YES = 0
  209. 2150  GOSUB 180: IF  PEEK(49152) = 155  THEN  POKE 49168,0: GOTO 1960
  210. 2160  GET TM$: IF TM$ =  CHR$(8)  OR TM$ =  CHR$(21)  OR TM$ =  CHR$(13)  OR TM$ =  CHR$(32)  OR TM$ = "Y"  OR TM$ = "N"  OR TM$ = "n"  OR TM$ = "y"  THEN 2180
  211. 2170  GOTO 2150
  212. 2180  IF TM$ =  CHR$(13)  THEN 2210
  213. 2190  IF TM$ =  CHR$(21)  OR TM$ =  CHR$(32)  OR TM$ = "y"  OR TM$ = "Y"  THEN YES = 1: GOSUB 2120: INVERSE : GOSUB 2130: NORMAL : GOTO 2150
  214. 2200  IF TM$ =  CHR$(8)  OR TM$ = "N"  OR TM$ = "n"  THEN YES = 0: GOSUB 2130: INVERSE : GOSUB 2120: NORMAL : GOTO 2150
  215. 2210  IF SS = 4  AND YES = 1  THEN SS = 0: PRINT D$;"OPEN ";PR$;"CONFIG": PRINT D$;"WRITE ";PR$;"CONFIG": PRINT SLOT: PRINT LF: PRINT SP: PRINT D$;"CLOSE ";PR$;"CONFIG": GOTO 520
  216. 2220  IF SS = 4  AND YES = 0  THEN SS = 0: GOTO 520
  217. 2230  IF PS = 2  AND YES = 1  THEN  LET LF = LF +1: IF LF = 2  THEN LF = 0
  218. 2240  IF PS = 3  AND YES = 1  THEN  LET SP = SP +1: IF SP = 2  THEN SP = 0
  219. 2250  IF PS = 2  THEN  VTAB 14: POKE 36,65: IF LF = 0  THEN  PRINT "No ": GOTO 1960
  220. 2260  IF PS = 3  THEN  VTAB 16: POKE 36,65: IF SP = 0  THEN  PRINT "No ": GOTO 1960
  221. 2270  IF PS = 2  THEN  PRINT "Yes": GOTO 1960
  222. 2280  IF PS = 3  THEN  PRINT "Yes": GOTO 1960
  223. 2290  POKE 34,23: HOME : POKE 34,3: PRINT "Save Printer Setup? ";:SS = 4: GOTO 2110
  224. 2300  POKE 216,0: IF  PEEK(222) < >8  THEN  GOTO 2430
  225. 2310  HOME : VTAB 10: HTAB 15: PRINT "Cannot read the disk. Make sure a disk is in the drive": HTAB 15: PRINT "and the drive door is closed. Press any key to continue ";: GET ZZ$: HOME : GOTO 540
  226. 2320  POKE 216,0: HOME : VTAB 10: HTAB 15: IF  PEEK(222) = 16  THEN  PRINT "Illegal pathname. Try again. Press any key to continue ";: GET ZZ$: HOME : VTAB 1: POKE 36,63: PRINT "                 ": GOTO 540
  227. 2330  IF  PEEK(222) = 6  THEN  PRINT "Cannot find disk with appropriate pathname.": HTAB 15: PRINT "Try again. Press any key to continue ";: GET ZZ$: HOME : VTAB 1: POKE 36,63: PRINT "                 ": GOTO 540
  228. 2340  POKE 216,0: GOTO 2430
  229. 2350  HOME : VTAB 18: HTAB 10: PRINT "The Word Processor filename, '";WP$;"'": HTAB 10: PRINT "is an illegal filename.": HTAB 10: PRINT "Try again by pressing any key to continue ";: GET ZZ$: HOME : GOTO 1000
  230. 2360  HOME : VTAB 18: HTAB 10: PRINT "Cannot find the Word Processor file '";WP$;: PRINT "'.": HTAB 10: PRINT "Try again by pressing any key to continue ";: GET ZZ$: HOME : GOTO 1000
  231. 2370  HOME : VTAB 20: HTAB 10: PRINT "The Data Base filename, '";DB$;"'": HTAB 10: PRINT "is an illegal filename.": HTAB 10: PRINT "Try again by pressing any key to continue ";: GET ZZ$: HOME : GOTO 1000
  232. 2380  VTAB 20: HTAB 10: PRINT "Cannot find the Data Base file '";DB$;"'.": HTAB 10: PRINT "Try again by pressing any key ";: GET ZZ$: GOTO 1000
  233. 2390  VTAB 20: HTAB 2: PRINT "There were more or fewer categories in the Data Base than you specified.": HTAB 2: PRINT "The merged words in your printout may be inacurate. Check your Data Base to"
  234. 2400  HTAB 2: PRINT "determine the correct number of categories. Press any key to continue";: GET ZZ$: GOTO 520
  235. 2410  HOME : VTAB 18: HTAB 10: PRINT "The file '";WP$;"' is not an ASCII file.": GOTO 2450
  236. 2420  HOME : VTAB 18: HTAB 10: PRINT "The file '";DB$;"' is not an ASCII file.": GOTO 2450
  237. 2430  IF  PEEK(222) = 4  THEN  TEXT : HOME : VTAB 12: PRINT "Your disk is write protected. Make sure you have made a copy": PRINT "of the master disk and the write protect tab is removed.": END 
  238. 2432  IF  PEEK(222) = 3  THEN  TEXT : HOME : VTAB 12: PRINT "No device is connected to the specified slot and drive. This": PRINT "program assumes the disk controller card is in slot 6.": END 
  239. 2434  IF  PEEK(222) = 8  THEN  TEXT : HOME : VTAB 12: PRINT "An I/O error occurred.": END 
  240. 2439  TEXT : HOME : PRINT "An unexpected error "; PEEK(222);" occurred.": END 
  241. 2440  HOME : VTAB 18: HTAB 10: PRINT "There are more than ";LIMIT;" lines in your document. Merge only that": HTAB 10: PRINT "portion of the document that needs to be merged,": HTAB 10: PRINT "or split your document in two."
  242. 2450  HTAB 10: PRINT "Press any key to continue. ";: GET ZZ$: TEXT : GOTO 520
  243. 2460  VTAB 18: HTAB 10: PRINT "A maximum of 30 MERGE identifiers may be specified.": HTAB 10: PRINT "Press any key to continue. ";: GET ZZ$: LET R$ = "": GOTO 1320
  244. 2470  HOME : VTAB 18: HTAB 10: PRINT "Your Word Processor File is too big. Merge only that portion": HTAB 10: PRINT "of the document that needs to be merged, or split your document in two.": GOTO 2450
  245. 2480  HOME : VTAB 12: HTAB 10: PRINT "Your Word Processor File has over 6 labels in line ";I;".": GOTO 2450
  246. 2490  VTAB 18: HTAB 10: PRINT "'[MERGE#]' in your Word Processor file is not": HTAB 10: PRINT "in the correct format.": PRINT : GOTO 2450
  247. 2500  HOME : VTAB 18: HTAB 10: PRINT "One of the lines in your Word Processor file may be too long": HTAB 10: PRINT "for AppleWorks Mailing Program. See your AMP manual for details.": HTAB 10: PRINT "Press any key to continue ";: GET ZZ$: RETURN 
  248. 2510  HOME : VTAB 12: PRINT "This program runs only on an Apple IIc": PRINT "or an Apple IIe with an 80-column card.": END 
  249. 2520  VTAB 12: PRINT "Please make sure your program disk is in one of the drives.": PRINT "Press any key to continue ";: GET ZZ$: GOTO 2550
  250. 2530  POKE 49168,0: RESUME : REM 
  251. 2540  END 
  252. 2550  POKE 49168,0: ONERR  GOTO 2520
  253. 2560  TEXT : HOME : PRINT D$;"PREFIX ";PR$: END